From: Alex Williamson Date: Thu, 27 Sep 2007 21:10:42 +0000 (-0600) Subject: [IA64] Kdump: Save dom0_mm_pgd_mfn in vmcore on ia64 X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14947 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=7db37af9be3b4782fd60a83c52775c295dfebecf;p=xen.git [IA64] Kdump: Save dom0_mm_pgd_mfn in vmcore on ia64 On Xen dom0_mm_pgd_mfn needs to be saved in the vmcore in order to allow the crash utility to navigate the vmcore file. Cc: Itsuro ODA Signed-off-by: Simon Horman --- diff --git a/xen/arch/ia64/xen/crash.c b/xen/arch/ia64/xen/crash.c index 1cc78fb15f..df340b1c57 100644 --- a/xen/arch/ia64/xen/crash.c +++ b/xen/arch/ia64/xen/crash.c @@ -15,16 +15,21 @@ #include #include #include +#include void machine_crash_shutdown(void) { - //printk("machine_crash_shutdown: %d\n", smp_processor_id()); + crash_xen_info_t *info; + unsigned long dom0_mm_pgd_mfn; + if (in_interrupt()) ia64_eoi(); kexec_crash_save_info(); - printk(__FILE__ ": %s: save the eqivalent of x86's " - "dom0->shared_info->arch.pfn_to_mfn_frame_list_list?\n", - __FUNCTION__); + info = kexec_crash_save_info(); + /* Info is not word aligned on ia64 */ + dom0_mm_pgd_mfn = __pa(dom0->arch.mm.pgd) >> PAGE_SHIFT; + memcpy((char *)info + offsetof(crash_xen_info_t, dom0_mm_pgd_mfn), + &dom0_mm_pgd_mfn, sizeof(dom0_mm_pgd_mfn)); #ifdef CONFIG_SMP smp_send_stop(); #endif diff --git a/xen/include/xen/elfcore.h b/xen/include/xen/elfcore.h index fbe8ed1a6a..175ee628fe 100644 --- a/xen/include/xen/elfcore.h +++ b/xen/include/xen/elfcore.h @@ -65,9 +65,12 @@ typedef struct { unsigned long xen_compile_date; unsigned long xen_compile_time; unsigned long tainted; -#ifdef CONFIG_X86 +#if defined(__i386__) || defined(__x86_64__) unsigned long dom0_pfn_to_mfn_frame_list_list; #endif +#if defined(__ia64__) + unsigned long dom0_mm_pgd_mfn; +#endif } crash_xen_info_t; #endif /* __ELFCOREC_H__ */